#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <string.h>
#include <errno.h>
#include <malloc.h>
#include <fcntl.h>
#include <sys/stat.h>
int g = 99;
int main()
{
    int l = 99;
    pid_t pid;
    pid = vfork();
    if (pid < 0)
    {
        perror("vfork failed!");
        exit(-1);
    }
    else if (pid == 0)
    {
        /*子进程*/
        printf("%d : g = %d , l = %d\n", getpid(), g, l);
        g++; //修改全局变量
        l++; //修改局部变量
        printf("%d : g = %d , l = %d\n", getpid(), g, l);
        // exit(0);
        return 0;
    }
    else
    {
        /*父进程*/
        printf("%d : g = %d , l = %d\n", getpid(), g, l);
        g++; //修改全局变量
        l++; //修改局部变量
        printf("%d : g = %d , l = %d\n", getpid(), g, l);
        // exit(0);
        return 0;
    }
}